﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;

namespace SAD
{
    public class GestorDonacion
    {
        static private Conexion conexionBD = new Conexion();

        /* private void AbrirConexion()
        {
            conexionBD.AbrirConexion();
        }*/


        static private string GenerarID()
        {
            String consulta = "SELECT SUBSTRING(MAX(idCampana),4,9) FROM CAMPANA";
            SqlDataReader dataReader = conexionBD.EjecutarReader(consulta);
            dataReader.Read();
            string aux = dataReader[0] + "";
            int r;
            if (aux == "") r = 1;
            else r = Convert.ToInt32(aux) + 1;

            string id = r.ToString();
            int nrodig = id.Length;

            for (int i = 1; i <= 9 - nrodig; i++)
                id = "0" + id;
            id = "CMP" + id;
            dataReader.Close();
            return id;
        }

        private static string convertirMoneda(string nombreMoneda)
        {
            String consulta = "SELECT IDMONEDA FROM MONEDA WHERE NOMBRE LIKE '%" + nombreMoneda + "%'";
            SqlDataReader dataReader = conexionBD.EjecutarReader(consulta);
            dataReader.Read();

            string aux = dataReader[0] + "";
            dataReader.Close();
            if (aux != "") return aux;
            else return null;

        }

        private static string convertirEstado(string nombreEstado)
        {
            String consulta = "SELECT IDESTADO FROM ESTADOCAMPANA WHERE NOMBRE LIKE '%" + nombreEstado + "%'";
            SqlDataReader dataReader = conexionBD.EjecutarReader(consulta);
            dataReader.Read();

            string aux = dataReader[0] + "";
            dataReader.Close();
            if (aux != "") return aux;
            else return null;

        }

        static public void RegistrarCampaña(string nomb, string descp, string idemerg, string idgrupo, string fechaini,
            string fechafin, double presup, double costo, string nombreMoneda)
        {
            //String consulta = "Insert into CAMPAÑA (CODCAMPANA,CODMONEDA,NOMBRE,DESCRIPCION,FECHAINICIO,FECHACIERRE,COSTO,ESTADO,CODVOLUNTARIO) 
            //values ('0000000001','01','PROMOCION POR TIEMPO DE LEALTAD',null,to_timestamp('23-JAN-10','DD-MON-RR HH.MI.SSXFF AM'),to_timestamp('12-FEB-10','DD-MON-RR HH.MI.SSXFF AM'),null,'01',null);";

            /*
             * Atributos de campaña
            private String idCampana;
            private String nombre;
            private String descripcion;
            private String idEmergencia;
            private String idGrupoObjetivo;
            private String fechaInicio;
            private String fechaFin;
            private Single presupuesto;
            private Single costo;
            private String idMoneda;
            private String idEstado;
             */

            string idmoneda = convertirMoneda(nombreMoneda);

            string idestado = "ECA02";//convertirMoneda(nombreEstado);

            string consulta = "";

            string nuevoid = GenerarID();

            
            
            if (idemerg != "")
            {
                if (idmoneda != "")
                {
                    //EN SQL SERVER:
                    //nomb, descp, idemerg, idgrupo, fechaini, fechafin, double presup,  double costo, string idmoneda, string idestado)
                    if (idgrupo != "")
                        consulta = "INSERT INTO CAMPANA (IDCAMPANA, NOMBRE, DESCRIPCION, IDEMERGENCIA, IDGRUPOOBJETIVO, FECHAINICIO, FECHAFIN, PRESUPUESTO, COSTO, IDMONEDA, IDESTADO)" +
                                          "VALUES ( " + "\'" + @nuevoid + "\'" + "," + "\'" + @nomb + "\'" + "," + "\'" + @descp + "\'" + "," + "\'" + @idemerg + "\'" + "," + "\'" + @idgrupo + "\'" + ","
                                          + "convert(datetime," + "\'" + @fechaini + "\'" + ", 103)," + "convert(datetime," + "\'" + @fechafin + "\'" + ", 103)," + @presup + "," + @costo + ","
                                          + "\'" + @idmoneda + "\'" + "," + "\'" + @idestado + "\'" + ")";
                    else
                        consulta = "INSERT INTO CAMPANA (IDCAMPANA, NOMBRE, DESCRIPCION, IDEMERGENCIA, FECHAINICIO, FECHAFIN, PRESUPUESTO, COSTO, IDMONEDA, IDESTADO)" +
                                      "VALUES ( " + "\'" + @nuevoid + "\'" + "," + "\'" + @nomb + "\'" + "," + "\'" + @descp + "\'" + "," + "\'" + @idemerg + "\'" + ","
                                      + "convert(datetime," + "\'" + @fechaini + "\'" + ", 103)," + "convert(datetime," + "\'" + @fechafin + "\'" + ", 103)," + @presup + "," + @costo + ","
                                      + "\'" + @idmoneda + "\'" + "," + "\'" + @idestado + "\'" + ")";

                }

            }



            //Para obtener fecha de las tablas en formato dd/MM/YYYY >>>  select CONVERT(varchar,fechaInicio,103) from campana
            conexionBD.EjecutarComando(consulta);
            MessageBox.Show("Insert exitoso =)", "SAD aviso"); //Decidir sobre messageBox
        }


        static public Campaña BuscarCampañaCodigo(string idCampana)
        {
            String consulta = "SELECT * FROM CAMPANA WHERE idCampana = " + "\'" + @idCampana + "\'" + ";";
            SqlDataReader dataReader = conexionBD.EjecutarReader(consulta);
            while (dataReader.Read())
            {
                Campaña campana = new Campaña();
                return campana;
            }

            return null;
        }
    }
}
